package com.keba.lamp.ai.vo.save;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 表单保存方法VO
 * ai调用记录表
 * </p>
 *
 * @author twg
 * @date 2025-03-12 22:09:15
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@EqualsAndHashCode
@Builder
@Schema(description = "ai调用记录表")
public class AiInvokeRecordSaveVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 乐观锁
     */
    @Schema(description = "乐观锁")
    private Integer revision;
    /**
     * 是否删除，0-未删除，1-删除
     */
    @Schema(description = "是否删除，0-未删除，1-删除")
    @NotNull(message = "请填写是否删除，0-未删除，1-删除")
    private Integer isDel;
    /**
     * 客户id
     */
    @Schema(description = "客户id")
    @NotNull(message = "请填写客户id")
    private Long customerId;
    /**
     * 应用Id
     */
    @Schema(description = "应用Id")
    @NotNull(message = "请填写应用Id")
    private Long applicationId;
    /**
     * 接入点id
     */
    @Schema(description = "接入点id")
    @NotNull(message = "请填写接入点id")
    private Long endPointId;
    /**
     * 模型id
     */
    @Schema(description = "模型id")
    @NotNull(message = "请填写模型id")
    private Long modelId;
    /**
     * 提示词
     */
    @Schema(description = "提示词")
    @Size(max = 5000, message = "提示词长度不能超过{max}")
    private String prompt;
    /**
     * 模型返回结果
     */
    @Schema(description = "模型返回结果")
    @Size(max = 65535, message = "模型返回结果长度不能超过{max}")
    private String result;
    /**
     * 调用状态,1:成功，0：失败
     */
    @Schema(description = "调用状态,1:成功，0：失败")
    private Integer state;



}
